import time

from api.login_api import input_user, input_password, click_button
from config.data import Domain_Account
from tools.logger import log_info


def domain_login(app_manager):
    """
    执行域账号登录流程（传入 AppManager 实例）
    :param app_manager: AppManager 实例（包含 app 和窗口管理能力）
    :return: relation_inquiry_win (关联查询窗口)
    """
    main_win = app_manager.connect_to_main()

    # 点击查询/解绑
    click_button(main_win, "查询 / 解绑")
    time.sleep(0.2)  # 允许窗口动画完成

    log_info("🔐 开始域账号登录...")

    # ✅ 使用 AppManager 的 connect_to_domain_account（内部用 Desktop 查找）
    domain_win = app_manager.connect_to_domain_account()
    log_info("✅ 找到【域账号登录】窗口")

    # 输入域用户名
    username = Domain_Account['success']['username']
    log_info(f"✅ 输入域账号: {username}")
    input_user(domain_win, username, "UserNametxt", "域账号")

    # 输入密码
    password = Domain_Account['success']['password']
    log_info(f"✅ 输入域密码: {'*' * len(password)}")  # 隐藏密码日志
    input_password(domain_win, password, "Passwordtxt", "密码")

    # 点击确定
    log_info("🖱 点击【确 定】按钮")
    click_button(domain_win, "确 定")
    time.sleep(0.2)
    log_info("✅ 域账号登陆成功")

    # --- 登陆成功，进入到关联查询界面 ---
    # ✅ 使用 AppManager 的 connect_to_relation_inquiry（弹窗，用 Desktop 查找）
    relation_inquiry_win = app_manager.connect_to_relation_inquiry()
    log_info("✅ 进入到【关联查询】界面")

    return relation_inquiry_win